Data is often distributed to scale the storage capacity or processing capacity of systems that provide access to the data. For example, data sets can be divided into partitions in order to leverage the capacity of different hosts, such as different servers or other computing devices, to separately provide access to individual partitions. The assignment or allocation of data into different partitions can also impact the performance of queries and other access operations to the data set. If, for instance, like data were stored close together (e.g., on a same partition), then queries retrieving similar data would have fewer locations to search in order to provide a result. Thus, techniques that can optimize the assignment of data of a data set to different locations may be desirable.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.